启动docker的时候怎么把参数传递给docker里面的项目 |
您所在的位置:网站首页 › docker run 添加参数 › 启动docker的时候怎么把参数传递给docker里面的项目 |
很多时候我们要把自己本地的项目打成一个docker镜像 大部分都是Tomcat或者现在很流行的springboot项目 如果只是带参数运行一个springboot项目是很简单的,如下 java -Dserver.port=8080 -jar xxx.jar 以上命令就把端口号设置为8080启动jar包,无需去改jar包里面的配置文件 但是如果已经把这个jar包打成了镜像之后,怎么传递呢 看下docker run的参数选项,里面有一个-e,环境变量 一开始被"环境"两个字误导了,以为就跟我们装JDK的时候说的环境变量是一个意思 其实也可以用来传递普通变量,如下 1,springboot项目 先改Dockerfile: FROM java:8 ADD microsoft.jar /root ENV PARAMS="" ENTRYPOINT ["sh","-c","java $PARAMS -jar /root/microsoft.jar"]构建镜像命令: docker build -t 镜像名称 . 启动命令: docker run -d -e PARAMS="-Dserver.port=8080" -p 2000:8080 镜像名称 这样jar包在启动的时候就会去读输入变量 2,Tomcat项目 Dockerfile: #基本镜像 FROM centos #把你上传的jdk放到docker容器里面的root目录下 ADD jdk-8u11-linux-x64.tar.gz /root #把你上传的Tomcat放到docker容器里面的root目录下 ADD apache-tomcat-7.0.57.tar.gz /root #设置环境变量 ENV JAVA_HOME /root/jdk1.8.0_11 #设置环境变量 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar #设置环境变量 ENV CATALINA_HOME /root/apache-tomcat-7.0.57 #设置环境变量 ENV CATALINA_BASE /root/apache-tomcat-7.0.57 #设置环境变量 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin ENV PARAMS="" #执行startup.sh并打开日志 ENTRYPOINT echo $PARAMS > /root/params.txt && /root/apache-tomcat-7.0.57/getParams.sh && /root/apache-tomcat-7.0.57/bin/startup.sh && tail -F /root/apache-tomcat-7.0.57/logs/catalina.out /root/params.txt 存放参数的TXT文件 getParams.sh 读取参数的脚本 startup.sh 读完参数启动Tomcat
启动命令:
docker run -d -e PARAMS="user=root&pwd=lw123" -p 2000:8080 params 这样Tomcat在启动之前就会先去处理你传递的参数,怎么处理就根据实际的业务来处理
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |